<?php

namespace app\admin\controller;

use think\Controller;
use think\Db;

class Base extends Controller
{

    public function initialize()
    {
        //判断是否登陆
        if (!session('?admin')){
            $this->redirect(url('admin/account/login'));
        }
        if(session('admin')->id>1){
            $path = $_SERVER['REQUEST_URI'];
            $paths = explode('/',explode('.html',$path)[0]);
            if(count($paths)==4){
                $ckpath = $paths[2].'/'.$paths[3];
                $arr = [
                        'index/home',
                        'index/password'
                    ];
                $arr1 = [
                        'domain',
                        'video'
                    ];
                if(!in_array($ckpath,$arr) && !in_array($paths[2],$arr1)){
                    exit('无权访问');
                }
                
            }
        }
        
        $this->assign('admin_ck',session('admin')->admin);
    }


    /** 生成二维码 */
    public function qrcode($url)
    {
        if ( !$url ) return false;
        $code = new \dh2y\qrcode\QRcode();
        $code_path = $code->png($url)->getPath();
        $this->redirect($code_path);
        return $code_path;
    }


    // 通用状态设置（禁用、启用都是调用这个内部方法）
    public function status()
    {

        //获取参数
        $table	= input('param.t');
        $field	= input('param.f', 'status');
        $id		= input('param.id/d');

        //如果缺少参数,报错
        if (empty($id) || empty($table)) {
            error('缺少参数,没有指定id或table');
        }

        //保留项目
        if ($table == 'users' && $id == 1) {
            error('用户id为1的项目为保留项目,不能删除和修改权限');
        }

        //查询当前状态
        if ( $res = Db::name($table)->field($field)->find($id) ){
            if ($res[$field] == 1){
                $status = 2;
            }else{
                $status = 1;
            }

            if ( Db::name($table)->where('id', $id)->update([$field => $status]) ){
                success('修改成功');
            }else{
                error('修改失败');
            }
        }else{
            error('没有查到此用户');
        }

    }


    // 通用删除（单纯的记录删除）
    public function del()
    {
        //获取参数
        $id = input('param.id/a','');
        $table = input('param.t','');

        //如果缺少参数,报错
        if (empty($id) || empty($table)) {
            error('缺少参数,没有指定id或table');
        }

        //保留项目
        if ($table == 'users' && $id == [1]) {
            error('用户id为1的项目为保留项目,不能删除');
        }

        //删除指定id
        $res = Db::name($table)->delete($id);
        if ($res){
            success('删除成功');
        }else{
            error('删除失败');
        }
    }

}
?>

